Git撤销操作总结:reset、revert与restore的区别
Git提供`reset`、`revert`、`restore`三个撤销工具,功能相似但场景差异大,需按场景选择: **git reset**:调整分支指针,丢弃部分提交。分三模式:`--mixed`(默认,回退指针和暂存区,保留工作区)、`--soft`(仅回退指针,保留修改)、`--hard`(彻底回退,最危险)。适用于本地未推送的快速回退,已推送分支严禁用`--hard`。 **git revert**:创建新提交反向撤销,保留原历史。语法简单(如`git revert HEAD~1`),安全回滚已推送分支,避免破坏团队历史。 **git restore**:精准恢复文件,不影响分支。可撤销暂存(`git restore --staged <文件>`)或恢复单个文件到历史版本(`git restore --source=HEAD~1 <文件>`),替代旧`git checkout --`,语义更清晰。 **区别**:reset调整分支指针(危险),revert新增撤销提交(安全),restore恢复单文件(精准)。决策口诀:本地未推用
阅读全文